home *** CD-ROM | disk | FTP | other *** search
-
-
-
- WRITE C Library Procedures WRITE
-
-
-
- NNAAMMEE
- write, writev - write output
-
- SSYYNNOOPPSSIISS
- cccc == wwrriittee((dd,, bbuuff,, nnbbyytteess))
- iinntt cccc,, dd;;
- cchhaarr **bbuuff;;
- iinntt nnbbyytteess;;
-
- ##iinncclluuddee <<ssyyss//ttyyppeess..hh>>
- ##iinncclluuddee <<ssyyss//uuiioo..hh>>
-
- cccc == wwrriitteevv((dd,, iioovv,, iioovvccnntt))
- iinntt cccc,, dd;;
- ssttrruucctt iioovveecc **iioovv;;
- iinntt iioovvccnntt;;
-
- DDEESSCCRRIIPPTTIIOONN
- _W_r_i_t_e attempts to write _n_b_y_t_e_s of data to the object refer-
- enced by the descriptor _d from the buffer pointed to by _b_u_f.
- _W_r_i_t_e_v performs the same action, but gathers the output data
- from the _i_o_v_c_n_t buffers specified by the members of the _i_o_v
- array: iov[0], iov[1], ..., iov[iovcnt-1].
-
- For _w_r_i_t_e_v, the _i_o_v_e_c structure is defined as
-
- struct iovec {
- caddr_t iov_base;
- int iov_len;
- };
-
- Each _i_o_v_e_c entry specifies the base address and length of an
- area in memory from which data should be written. _W_r_i_t_e_v
- will always write a complete area before proceeding to the
- next.
-
- On objects capable of seeking, the _w_r_i_t_e starts at a posi-
- tion given by the pointer associated with _d, see _l_s_e_e_k(2).
- Upon return from _w_r_i_t_e, the pointer is incremented by the
- number of bytes actually written.
-
- Objects that are not capable of seeking always write from
- the current position. The value of the pointer associated
- with such an object is undefined.
-
- If the real user is not the super-user, then _w_r_i_t_e clears
- the set-user-id bit on a file. This prevents penetration of
- system security by a user who "captures" a writable set-
- user-id file owned by the super-user.
-
- When using non-blocking I/O on objects such as sockets that
- are subject to flow control, _w_r_i_t_e and _w_r_i_t_e_v may write
-
-
-
- Sprite v1.0 May 14, 1986 1
-
-
-
-
-
-
- WRITE C Library Procedures WRITE
-
-
-
- fewer bytes than requested; the return value must be noted,
- and the remainder of the operation should be retried when
- possible.
-
- RREETTUURRNN VVAALLUUEE
- Upon successful completion the number of bytes actually
- written is returned. Otherwise a -1 is returned and the
- global variable _e_r_r_n_o is set to indicate the error.
-
- EERRRROORRSS
- _W_r_i_t_e and _w_r_i_t_e_v will fail and the file pointer will remain
- unchanged if one or more of the following are true:
-
- [EBADF] _D is not a valid descriptor open for writing.
-
- [EPIPE] An attempt is made to write to a pipe that is
- not open for reading by any process.
-
- [EPIPE] An attempt is made to write to a socket of
- type SOCK_STREAM that is not connected to a
- peer socket.
-
- [EFBIG] An attempt was made to write a file that
- exceeds the process's file size limit or the
- maximum file size.
-
- [EFAULT] Part of _i_o_v or data to be written to the file
- points outside the process's allocated
- address space.
-
- [EINVAL] The pointer associated with _d was negative.
-
- [ENOSPC] There is no free space remaining on the file
- system containing the file.
-
- [EDQUOT] The user's quota of disk blocks on the file
- system containing the file has been
- exhausted.
-
- [EIO] An I/O error occurred while reading from or
- writing to the file system.
-
- [EWOULDBLOCK] The file was marked for non-blocking I/O, and
- no data could be written immediately.
-
- In addition, _w_r_i_t_e_v may return one of the following errors:
-
- [EINVAL] _I_o_v_c_n_t was less than or equal to 0, or
- greater than 16.
-
- [EINVAL] One of the _i_o_v__l_e_n values in the _i_o_v array
- was negative.
-
-
-
- Sprite v1.0 May 14, 1986 2
-
-
-
-
-
-
- WRITE C Library Procedures WRITE
-
-
-
- [EINVAL] The sum of the _i_o_v__l_e_n values in the _i_o_v
- array overflowed a 32-bit integer.
-
- SSEEEE AALLSSOO
- fcntl(2), lseek(2), open(2), pipe(2), select(2)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Sprite v1.0 May 14, 1986 3
-
-
-
-